Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Compilateur Java</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Compilateur_Java"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Compilateur_Java rootpage-Compilateur_Java skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Compilateur Java</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p>Un <b>compilateur Java</b> est un <a href="Compilateur" title="Compilateur">compilateur</a> pour le <a href="Java_(langage)" title="Java (langage)">langage de programmation Java</a><sup class="need_ref_tag" style="padding-left:2px;">[Quoi&nbsp;?]</sup>. Le format de sortie le plus courant pour un compilateur Java est des fichiers .class contenant le <a href="Bytecode" title="Bytecode">bytecode</a> Java plate-forme agnostique. Il existe aussi des compilateurs produisant du <a href="Code_machine" class="mw-redirect" title="Code machine">code machine</a> optimisé pour une combinaison <a href="Mat%C3%A9riel_informatique" title="Matériel informatique">matériel</a>/<a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a> particulière.
</p><p>La <a href="Machine_virtuelle_Java" title="Machine virtuelle Java">machine virtuelle Java</a> (JVM) charge les fichiers .class et interprète le bytecode ou le <a href="Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">compile à la volée</a> et peut également l'optimiser en utilisant la compilation dynamique.
</p>

<div class="mw-heading mw-heading2"><h2 id="Exemples_de_compilateurs_java">Exemples de compilateurs java</h2></div>
<ul><li><a href="Javac" class="mw-redirect" title="Javac">javac</a>, le compilateur Java de <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>, livré avec le <a href="JDK" class="mw-redirect" title="JDK">JDK</a>.</li>
<li><a href="ECJ" class="mw-disambig" title="ECJ">ECJ</a> (<span class="lang-en" lang="en">Eclipse Compiler for Java</span>), le compilateur Java intégré à l'<a href="Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9" class="mw-redirect" title="Environnement de développement intégré">environnement de développement intégré</a> <a href="Eclipse_(logiciel)" class="mw-redirect" title="Eclipse (logiciel)">Eclipse</a>.</li>
<li><a href="GCJ" title="GCJ">GCJ</a> (<span class="lang-en" lang="en">Gnu Compiler for Java</span>), inclus dans la <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC), qui génère du <a href="Code_machine" class="mw-redirect" title="Code machine">code machine</a> grâce au <a href="Back-end" class="mw-redirect" title="Back-end">back-end</a> de GCC.</li>
<li><a href="Jikes" title="Jikes">Jikes</a>, un projet <a href="Open_source" title="Open source">open source</a> de compilateur Java créé par <a href="IBM" title="IBM">IBM</a>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Autres">Autres</h2></div>
<ul><li><a href="JavaCC" title="JavaCC">JavaCC</a>, un <a href="Compilateur_de_compilateur" title="Compilateur de compilateur">compilateur de compilateurs</a> pour Java.</li></ul>
<p><br>
</p>
<div class="mw-heading mw-heading2"><h2 id="Historique_et_perspectives">Historique et perspectives</h2></div>
<p>Le premier compilateur java a été celui de Sun, diffusé avec le langage Java.
</p><p><br>
</p>

<div class="mw-heading mw-heading2"><h2 id="Fonctionnement_et_théorie"><span id="Fonctionnement_et_th.C3.A9orie"></span>Fonctionnement et théorie</h2></div>
<p>Les compilateurs Java sont en général distribués en tant qu'outils en <a href="Interface_en_ligne_de_commande" title="Interface en ligne de commande">ligne de commande</a>, même si des IDE existent.
Il existe également une <span class="lang-en" lang="en">Java Compiler API</span> (JSR 199).
</p><p>Les compilateurs Java ont la particularité de compiler le langage Java en un <a href="Bytecode_Java" title="Bytecode Java">bytecode Java</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Apports_et_limitations">Apports et limitations</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Apports">Apports</h3></div>
<p>Le compilateur Java offre de l'interopérabilité et de la portabilité, tant au niveau du code source, du code binaire produit que de son invocation.
</p><p>Certains compilateurs Java sont d'usage gratuit. D'autres sont open source.
</p>
<div class="mw-heading mw-heading3"><h3 id="Limitations">Limitations</h3></div>
<div class="mw-heading mw-heading2"><h2 id="Standardisation_et_normalisation">Standardisation et normalisation</h2></div>
<p>Les compilateurs Java doivent respecter les spécifications publiées par Sun microsystems.
Il s'agit des spécifications <i><span class="lang-en" lang="en">Java Language Specification</span></i> et <i><span class="lang-en" lang="en">The Java Virtual Machine Specification</span></i><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>.
</p><p>En plus de son travail de compilation, le compilateur peut traiter les annotations, en accord avec la <i><span class="lang-en" lang="en">JSR 269: Pluggable Annotation Processing API</span></i><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Usages_et_applications">Usages et applications</h2></div>

<div class="mw-heading mw-heading2"><h2 id="Aspects_économiques_et_sociaux"><span id="Aspects_.C3.A9conomiques_et_sociaux"></span>Aspects économiques et sociaux</h2></div>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/specs/">«&nbsp;<i><span class="lang-en" lang="en">Java Language and Virtual Machine Specifications</span></i>&nbsp;»</a>.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://jcp.org/en/jsr/detail?id=269">«&nbsp;<i><span class="lang-en" lang="en">JSR 269: Pluggable Annotation Processing API</span></i>&nbsp;»</a>.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Bibliographie">Bibliographie</h2></div>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<div class="mw-heading mw-heading3"><h3 id="Vocabulaire_et_notations">Vocabulaire et notations</h3></div>

<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2023-09-15" href="https://fr.wikipedia.org/wiki/?title=Compilateur_Java&amp;oldid=207859654">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>